#ifndef __CPPTUTORINHERITANCE_H__
#define __CPPTUTORINHERITANCE_H__

#include "cppTutorLog.h"
#include "cppTutorGlobals.h"

#include <iostream>
#include <string>
#include <vector>
#include <list>

using namespace std;

class CcppTutorCompanyEmployee
{
    protected:
        int m_nEmployeeID, m_nUserChoice;
        bool m_bFlag;
        
        string m_strEmployeeName;
        string m_strDepartment;
        
    protected:
        vector <string> v_name;
        vector <string> :: iterator v_name_it;
        
        vector <string> v_dept;
        vector <string> :: iterator v_dept_it;
        
        vector <int> v_id;
        vector <int> :: iterator v_id_it;
        
    public:
        CcppTutorCompanyEmployee ();
        virtual ~CcppTutorCompanyEmployee ();        
        
        //void m_EmployeeMenu ();
        void m_Menu ();
        bool m_RegisterEmployee ();

        virtual bool m_SearchEmployee ();
        virtual bool m_DeleteEmployee ();
};

#if 0
class CcppTutorBase
{
    private:
        int m_nPriValue;
        int m_nBasePriValue;
    public:
        int m_nPubValue;
        int m_nBasePubValue;
    protected:
        int m_nProValue;
        int m_nBaseProValue;

    public:
        CcppTutorBase ();
       ~CcppTutorBase ();

        void m_BaseGetValue ();
        void m_BaseSetValue (int);
        void m_WhoAmI ();
};

#ifdef INHERITANCE
#ifdef PUBLIC_INHERITANCE
class CcppTutorDerived : public CcppTutorBase
#endif //PUBLIC_INHERITANCE
#ifdef PROTECTED_INHERITANCE
class CcppTutorDerived : protected CcppTutorBase
#endif //PROTECTED_INHERITANCE
#else
class CcppTutorDerived
#endif //INHERITANCE
{
    private:
        int m_nPriValue;
        int m_nDerivedPriValue;
    public:
        int m_nPubValue;
        int m_nDerivedPubValue;
    protected:
        int m_nProValue;
        int m_nDerivedProValue;

    public:
        CcppTutorDerived ();
       ~CcppTutorDerived ();

        void m_DerivedGetValue ();
        void m_DerivedSetValue (int);
#ifdef INHERITANCE
        void m_DerivedGetBaseValue ();
#endif
        void m_WhoAmI ();
};
#endif //0
#endif //__CPPTUTORINHERITANCE_H__
